From 758830e7c33573b5393e03137dab659768695f5a Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Sat, 25 May 2019 18:27:32 +0200 Subject: [PATCH] meson: allow building man pages without the documentation The 'documentation' option also guarded the man page build. Instead if skipping the whole docs subdir skip the specific gtkdoc calls, so that the man page build still works. This brings it in line with the gtk3 meson build. --- docs/reference/gdk/meson.build | 42 ++++++++++--------- docs/reference/gsk/meson.build | 48 +++++++++++----------- docs/reference/gtk/meson.build | 74 +++++++++++++++++----------------- docs/reference/meson.build | 24 ++++++----- docs/tools/meson.build | 2 +- meson.build | 7 ++-- 6 files changed, 102 insertions(+), 95 deletions(-) diff --git a/docs/reference/gdk/meson.build b/docs/reference/gdk/meson.build index 6df0882ec7..39ce4b3d42 100644 --- a/docs/reference/gdk/meson.build +++ b/docs/reference/gdk/meson.build @@ -99,24 +99,26 @@ if wayland_enabled src_dir += [ gdkwayland_inc ] endif -configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) +if get_option('documentation') + configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) -gnome.gtkdoc('gdk4', - mode: 'none', - main_xml: 'gdk4-docs.xml', - src_dir: src_dir, - dependencies: libgtk_dep, - gobject_typesfile: join_paths(meson.current_source_dir(), 'gdk4.types'), - scan_args: [ - '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT', - '--ignore-headers=' + ' '.join(private_headers), - ], - fixxref_args: [ - '--html-dir=@0@'.format(docpath), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), - '--extra-dir=@0@'.format(cairo_docpath), - ], - html_assets: images, - install: true) + gnome.gtkdoc('gdk4', + mode: 'none', + main_xml: 'gdk4-docs.xml', + src_dir: src_dir, + dependencies: libgtk_dep, + gobject_typesfile: join_paths(meson.current_source_dir(), 'gdk4.types'), + scan_args: [ + '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT', + '--ignore-headers=' + ' '.join(private_headers), + ], + fixxref_args: [ + '--html-dir=@0@'.format(docpath), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), + '--extra-dir=@0@'.format(cairo_docpath), + ], + html_assets: images, + install: true) +endif diff --git a/docs/reference/gsk/meson.build b/docs/reference/gsk/meson.build index 8ef9a7cc48..7e33a9bad3 100644 --- a/docs/reference/gsk/meson.build +++ b/docs/reference/gsk/meson.build @@ -34,27 +34,29 @@ private_headers = [ images = [ ] -configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) +if get_option('documentation') + configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) -gnome.gtkdoc('gsk4', - mode: 'none', - main_xml: 'gsk4-docs.xml', - src_dir: [ - gskinc, - ], - dependencies: libgtk_dep, - gobject_typesfile: join_paths(meson.current_source_dir(), 'gsk4.types'), - scan_args: [ - '--ignore-decorators=_GDK_EXTERN', - '--ignore-headers=' + ' '.join(private_headers), - ], - fixxref_args: [ - '--html-dir=@0@'.format(docpath), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), - '--extra-dir=@0@'.format(cairo_docpath), - '--extra-dir=../gdk', - ], - html_assets: images, - install: true) + gnome.gtkdoc('gsk4', + mode: 'none', + main_xml: 'gsk4-docs.xml', + src_dir: [ + gskinc, + ], + dependencies: libgtk_dep, + gobject_typesfile: join_paths(meson.current_source_dir(), 'gsk4.types'), + scan_args: [ + '--ignore-decorators=_GDK_EXTERN', + '--ignore-headers=' + ' '.join(private_headers), + ], + fixxref_args: [ + '--html-dir=@0@'.format(docpath), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), + '--extra-dir=@0@'.format(cairo_docpath), + '--extra-dir=../gdk', + ], + html_assets: images, + install: true) +endif diff --git a/docs/reference/gtk/meson.build b/docs/reference/gtk/meson.build index 609cf28faf..3f8bae6ad2 100644 --- a/docs/reference/gtk/meson.build +++ b/docs/reference/gtk/meson.build @@ -381,9 +381,6 @@ expand_content_files = [ 'tree_widget.sgml', ] -configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) -configure_file(input: 'getting_started.xml.in', output: 'getting_started.xml', configuration: src_dir_conf) - types_conf = configuration_data() if os_win32 types_conf.set('DISABLE_ON_W32', '%') @@ -397,39 +394,44 @@ else types_conf.set('DISABLE_ON_QUARTZ', '') endif -gnome.gtkdoc('gtk4', - mode: 'none', - main_xml: 'gtk4-docs.xml', - src_dir: [ - gtkinc, - ], - dependencies: libgtk_dep, - gobject_typesfile: configure_file( - input: 'gtk4.types.in', - output: 'gtk4.types', - configuration: types_conf, - ), - scan_args: [ - '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT', - '--ignore-headers=' + ' '.join(private_headers), - ], - mkdb_args: [ - '--default-includes=gtk/gtk.h', - ], - fixxref_args: [ - '--html-dir=@0@'.format(docpath), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), - '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), - '--extra-dir=@0@'.format(cairo_docpath), - '--extra-dir=@0@'.format(gdkpixbuf_docpath), - '--extra-dir=../gdk', - '--extra-dir=../gsk', - ], - content_files: content_files, - expand_content_files: expand_content_files, - html_assets: images, - install: true) +if get_option('documentation') + configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) + configure_file(input: 'getting_started.xml.in', output: 'getting_started.xml', configuration: src_dir_conf) + + gnome.gtkdoc('gtk4', + mode: 'none', + main_xml: 'gtk4-docs.xml', + src_dir: [ + gtkinc, + ], + dependencies: libgtk_dep, + gobject_typesfile: configure_file( + input: 'gtk4.types.in', + output: 'gtk4.types', + configuration: types_conf, + ), + scan_args: [ + '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT', + '--ignore-headers=' + ' '.join(private_headers), + ], + mkdb_args: [ + '--default-includes=gtk/gtk.h', + ], + fixxref_args: [ + '--html-dir=@0@'.format(docpath), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), + '--extra-dir=@0@'.format(cairo_docpath), + '--extra-dir=@0@'.format(gdkpixbuf_docpath), + '--extra-dir=../gdk', + '--extra-dir=../gsk', + ], + content_files: content_files, + expand_content_files: expand_content_files, + html_assets: images, + install: true) +endif xsltproc = find_program('xsltproc', required: false) if get_option('man-pages') and not xsltproc.found() diff --git a/docs/reference/meson.build b/docs/reference/meson.build index d69068124e..55b0fb9e47 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -1,19 +1,21 @@ -glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix') -glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') +if get_option('documentation') + glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix') + glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') -cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix') -cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo') + cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix') + cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo') -gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix') -gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf') + gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix') + gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf') -docpath = join_paths(gtk_datadir, 'gtk-doc', 'html') + docpath = join_paths(gtk_datadir, 'gtk-doc', 'html') -version_conf = configuration_data() -version_conf.set('GTK_VERSION', meson.project_version()) + version_conf = configuration_data() + version_conf.set('GTK_VERSION', meson.project_version()) -src_dir_conf = configuration_data() -src_dir_conf.set('SRC_DIR', meson.source_root()) + src_dir_conf = configuration_data() + src_dir_conf.set('SRC_DIR', meson.source_root()) +endif subdir('gdk') subdir('gsk') diff --git a/docs/tools/meson.build b/docs/tools/meson.build index 05621ee7ed..5de632f141 100644 --- a/docs/tools/meson.build +++ b/docs/tools/meson.build @@ -1,4 +1,4 @@ -if x11_enabled +if x11_enabled and get_option('documentation') doc_shooter_sources = [ 'shadow.c', 'shooter.c', diff --git a/meson.build b/meson.build index 2189ee8b61..97cc7fdf28 100644 --- a/meson.build +++ b/meson.build @@ -790,10 +790,8 @@ endif subdir('po') subdir('po-properties') -if get_option('documentation') - subdir('docs/tools') - subdir('docs/reference') -endif +subdir('docs/tools') +subdir('docs/reference') # Keep this in sync with post-install.sh expected arguments meson.add_install_script('build-aux/meson/post-install.py', @@ -815,6 +813,7 @@ summary = [ ' Colord support: @0@'.format(get_option('colord')), ' Introspection: @0@'.format(get_option('introspection')), ' Documentation: @0@'.format(get_option('documentation')), + ' Man pages: @0@'.format(get_option('man-pages')), ' Build tests: @0@'.format(get_option('build-tests')), ' Install tests: @0@'.format(get_option('install-tests')), ' Demos: @0@'.format(get_option('demos')), -- 2.30.2